#include "obj2.h"

BASE(Obj2, Obj, 10)

static int getVal(void *this)
{
  return THIS->val;
}

static void setVal(void *this, int val)
{
  THIS->val = val;
  I()->priv(this);
  SUPER()->priv(this);
}

GETSET(int, val)

static void priv(void *this)
{
  printf("PRIV OBJ2\n");
  I()->p(this);
}

SETUP_IF(Obj2, Obj, ENTRYGS(val),ENTRY(setVal), ENTRY(getVal), ENTRY(priv),MIRROR(p))